This book, unlike our popular Linux Unleashed, was conceived as a solo effort
and as such meant an awful lot of my time was taken away from others. This book took a
while to write because it contains a lot of technical information. To my parents and close
friends, thanks for understanding why I couldn't visit. In particular, thanks to Yvonne
who understood why I had to spend evenings and weekends at the computer, muttering veiled
curses about deadlines, Linux, and applications that crashed at the most inopportune
times. Of course, I never said anything bad about my editors!
At Sams, those editors were Rosemarie Graham, who drove deadlines, tolerated changes,
and generally tried to bear with me as I struggled to submit this material on time. Thanks
also to Todd Bumbalough, who rode shotgun over the technical completeness of the material.
To the production editors and technical reviewers, thanks are also due. Also at Sams,
Grace Buechlein gracefully bore changes to her own schedules in order to fit this book in.
Finally, thanks to Rick McMullin, who graciously allowed me to steal some of his
material for the shell programming chapter and some details of the gcc C compiler.
Tim Parker is a well-known author with over 800 feature articles and reviews
published in many different magazines. In addition, Dr. Parker has written or contributed
to two dozen books. He is currently Technical Editor of SCO World Magazine, Contributing
Editor of Canadian Computer Reseller, and a frequent contributor to UNIX Review Magazine.
Dr. Parker is president of TPCI, based in Kanata, Ontario. TPCI provides technical
writing, training, investigative, and consulting services to many large corporations,
military installations, and law enforcement organizations.
When not busy writing books or articles, Dr. Parker can be found outdoors. He is a
semi-professional photographer, white-water kayaker, and hiker. He is also a scuba diving
instructor and licensed pilot.
UNIX system administration used to be a skill learned by watching others, trying many
things on spec, and scouring obscure magazine articles, obtuse man pages, and e-mail from
others. In short, system administration was a skill that was learned over the years with
no single reference to the role and functions a system administrator plays. UNIX,
especially, was a tough system to administer properly because there were many versions of
the software, a disparate support base, and few solid working applications. Luckily, time
has changed these conditions.
With the popularity of computers in general, system administrators started writing down
the details of their tasks. Publishers realized that there was a distinct and eager,
albeit small, market for system administration books. The market grew as the number of
systems and LANs expanded. The stabilization of the UNIX operating system in two, and now
one, major version helped enormously as well.
Linux became a dominant UNIX product about two years ago when it started receiving
worldwide acclaim as a reasonably stable PC version of UNIX. As more and more programmers
got involved and started producing software for Linux, the attraction of the operating
system continued to grow. Soon, PC users who didn't know anything about UNIX at all were
running Linux and starting to deal with shells, filesystems, and devices.
After helping to write Linux Unleashed (a great book, definitely worth buying if
you haven't already got a copy!), I realized that many users used that book and CD-ROM to
get started with Linux, but they needed more advanced material on managing their systems
and setting up network systems. That's when the Linux System Administrator's Survival
Guide was born. This book expands on the Linux Unleashed material, providing
more detail on many aspects of the operating system. Although some overlap exists between Linux
Unleashed and this book, it has been minimized as much as possible. Relative newcomers
to Linux will still find that that book is very readable, however.
Many Linux books are available, but to date there are no complete books on
administering a Linux system. A few books do cover specific aspects of the task, such as
networking or device drivers, but none cover the entire gamut. That's the task I set for
myself when this book was born: give readers enough information to help them get their
Linux systems running smoothly. The next problem was how to condense 20 years of UNIX
system administration experience into a single book. It took a while, but I hope I've
managed to include enough information on every aspect of system administration to keep you
going.
Bear in mind that this book was written for the system administrator, although the
material will certainly be applicable (and hopefully interesting) to any user who has
mastered the basics of Linux. I cover practically every aspect of system administration in
this book. When dealing with subjects, like security, that have entire books written on
them, I cover only the basics. Also, I don't include all the details about the more
obscure topics that aren't relevant to most readers.
This book should provide you with everything you need, from setting up filesystems to
installing servers for popular Internet utilities. The book was not written for the
advanced user; it was written for those just starting in system administration. I hope you
find a lot of useful information in this book.
A note about the CD-ROM accompanying this book. You probably already have a Linux system up and running. Just in case you don't or you want the latest versions of some of the Linux software, this book comes with the latest Slackware Linux CD-ROM distribution. You don't have to use this version of Linux to use the material covered in these pages. I've tried to make the material in each chapter relevant to as many versions as possible, and I usually give several possible pathnames and (in some cases) filenames when they may differ across versions or distributions. If your Linux system doesn't have a file or package in the location mentioned in this book, search your directory structure for the filenames given and substitute the pathname as necessary.